1. Technical Field
The present invention relates in general to a method and system for data processing and in particular to method and system for task management within a multitasking data processing system. Still more particularly, the present invention relates to a data processing system and method of task management within a self-managing application.
2. Description of the Related Art
Operating systems such as DOS (Disk Operating System) initially permitted only one task or process to be performed at a time. Thus, for example, a user of a word processing application could not print a first document while typing a second document. In order to permit multiple tasks to be executed concurrently (at least from a user's perspective), multitasking operating systems were developed. In general, multitasking operating systems can be classified as either cooperative or time-slice, depending upon the manner in which the operating systems allocate processing time to tasks.
Cooperative multitasking operating system classify tasks as either foreground or background tasks. Background tasks are granted processing time only during idle periods of the foreground tasks, such as periods when the foreground tasks are performing input and output operations. Time-slice multitasking operating systems, in contrast, allocate processing time (i.e., time slices) to each task in round robin fashion or based upon task priority.
Time-slice multitasking operating systems are often viewed as preferable to cooperative multitasking operating systems because background tasks running under cooperative multitasking operating systems receive insufficient processing time if the concurrent foreground tasks have minimal idle periods. Time-slice multitasking operating systems, however, are also subject to deficiencies. For example, conventional time-slice multitasking operating systems do not include facilities to detect an endless program loop in a task, which can lock out the operating system and prevent other tasks from receiving processing time. Similarly, in priority-based time-slice multitasking operating systems, a high priority task can prevent lower priority tasks from receiving adequate processing time. In addition, time-slice multitasking operating systems frequently preempt execution of well-behaved tasks that are not overusing the available processing resources, thereby incurring context switching delays.
In response to these deficiencies in conventional multitasking operating systems, multitasking operating systems have recently been developed which include scheduling facilities that utilize processing time estimates provided by tasks prior to dispatch to allocate processing resources to the tasks. However, for data processing systems that do not utilize a multitasking operating system with such scheduling facilities, a method for task management is needed that regulates the processing time allocated to each of a plurality of concurrent tasks.